我們一直都還沒做把文章內容,回傳到資料庫裏面,前面做的都只是CKeditor新增圖片時會先做的事情。
回顧流程是:
當你上傳一張圖片->圖片傳到後台 -> 後臺儲存 -> 回傳圖片的url到前台。
目標:
1.新增文章功能
步驟:
step1. 創建CreateArticle 的action 來接收前台的回傳。
[HttpPost("CreateArticle")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> CreateArticle(string Content)
{
await _article.CreateArticle(Content);
return Redirect("/");
}
note:
1.[HttpPost(“CreateArticle”)] 是router的一種寫法。
2.[HttpPost]是限定了 Http 傳輸的方法
step2.IArticleService.cs 和 ArticleService.cs 分別加上介面和實作
// IArticleService.cs
Task CreateArticle(string content);
// ArticleService.cs
public async Task CreateArticle(string content)
{
var article = new Article
{
Title = DateTime.UtcNow.ToUniversalTime().ToString(),
ArticleContent = content,
IsDelete = false
};
_db.Articles.Add(article);
await _db.SaveChangesAsync();
}
note:
1.基本上,新增資料前通常要先跟資料庫確認資料是不是重新新增過,就是做資料庫端的驗證防呆,但是發文系統,很難判斷這邊張是不是重複地所以這邊就沒做。
2.這邊要注意我們使用了_db 注入的方式~ 還是得怎麼做嗎?
然後使用了Add的方法把要存入的物件先收集起來 -> 在使用SaveChanges 此動作完會真的儲存到後端。